/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
package ar.com.indra.controller;

import java.util.ArrayList;

import javax.faces.bean.RequestScoped;

import ar.com.indra.beans.FormularioDTO1;
import ar.com.indra.beans.PreguntaDTO1;
import ar.com.indra.beans.RespuestaDTO;
import ar.com.indra.beans.ServicioDTO1;
import ar.com.indra.commons.controller.EncuestaBaseController;
import ar.com.indra.delegate.EncuestaDelegate;

/**
 * A typical simple backing bean, that is backed to <code>helloworld.jsp</code>
 * 
 */

@RequestScoped
public class EncuestaController extends EncuestaBaseController {
	
	//properties
	RespuestaDTO respuestaDto = new RespuestaDTO();	
    FormularioDTO1 formularioDto = new FormularioDTO1();
    String usuarioId = "1";
    /**
     * default empty constructor
     */
    public EncuestaController(){
    }
    
    //-------------------getter & setter
    public RespuestaDTO getFormulariodto() {
		return respuestaDto;
	}

	public void setFormulariodto(RespuestaDTO formulariodto) {
		this.respuestaDto = formulariodto;
	}
  
    
    /**
     * Method that is backed to a submit button of a form.
     */
    public void grabar(){
        
    	
    	try {
    		ArrayList<RespuestaDTO> respuestas = new ArrayList<RespuestaDTO>();
    		respuestas = this.crearRespuestas(formularioDto, usuarioId);
    		((EncuestaDelegate)this.getBaseDelegate()).updateMasivoRespuestas(respuestas);
    		
    	} catch (Exception e) {
    		System.out.println("Exception al invocar delegate.updateMasivoRespuestas()");
    		System.out.println("Exception: " + e.toString());
    		e.printStackTrace();
    	}
    }

	private ArrayList<RespuestaDTO> crearRespuestas(FormularioDTO1 formularioDto2, String usuarioId) {			
			
			RespuestaDTO respuestaDto = new RespuestaDTO();	
		    ArrayList<RespuestaDTO> respuestas = new ArrayList<RespuestaDTO>();
		    int cantServ = formularioDto2.getServicios().size();
		    ArrayList<ServicioDTO1> servicios = formularioDto2.getServicios();
		    for (int i = 0; i < cantServ; i++) {
		    	ServicioDTO1 serv = servicios.get(i);
		    	int cant_pregunta = serv.getPreguntas().size();
		    	ArrayList<PreguntaDTO1> preg = serv.getPreguntas();
				for (int j = 0; j < cant_pregunta; j++) {
					PreguntaDTO1 pregunta = preg.get(i);
					respuestaDto.setId_usuario(new Integer (usuarioId));
					respuestaDto.setId_pregunta_encuestas(pregunta.getIdPreguntaEncuesta());
					respuestaDto.setPosicion_rta(pregunta.getEstado());
					respuestaDto.setComentario(pregunta.getTextArea());
					respuestaDto.setId_grupo_etiqueta(pregunta.getIdGrupoEtiquetas());
					respuestas.add(respuestaDto);
				}
			}		   
			return respuestas;
	}
    
   
    
}
